package done.easy_901_1000;

import lombok.extern.slf4j.Slf4j;
import org.junit.*;

import static com.study.util.SwapUtil.swap;
import static org.junit.Assert.assertEquals;

/**
 * 917. Reverse Only Letters 仅仅反转字母
 * <p>
 * 给定一个字符串 S，返回 “反转后的” 字符串，其中不是字母的字符都保留在原地，而所有字母的位置发生反转。
 * <p>
 * 示例 1：
 * 输入："ab-cd"
 * 输出："dc-ba"
 * 示例 2：
 * 输入："a-bC-dEf-ghIj"
 * 输出："j-Ih-gfE-dCba"
 *
 * @author wangxiaozhe
 */
@Slf4j
public class ReverseOnlyLetters {

    @SuppressWarnings("all")
    public String reverseOnlyLetters(String S) {
        // 190401 first
        return null;
    }

    @Test
    public void test() {
        log.info("before:{}", "a-bC-dEf-ghIj");
        log.info("after :{}", reverseOnlyLetters("a-bC-dEf-ghIj"));
        assertEquals("j-Ih-gfE-dCba", reverseOnlyLetters("a-bC-dEf-ghIj"));
    }
}
































/*
public String reverseOnlyLetters(String S) {

    char[] s = S.toCharArray();
    int j = S.length()-1;

    for (int i=0; i<j; i++, j--) {
        while (i<j && isNotCharacter(s[i])) {
            i++;
        }

        while (i<j && isNotCharacter(s[j])) {
            j--;
        }

        // 如果 i 和 j 都是字母了
        swap(s, i, j);
    }
    return new String(s);
}
*/
